home *** CD-ROM | disk | FTP | other *** search
- /* Time.c
- * 28.5.1992 (c) by Thomas Göcke, inspiration by ThoF
- *
- * Time eröffnet ein kleines Fenster in der Titelleiste des
- * Workbenchscreens und zeigt in diesem ständig die aktuelle Uhrzeit an.
- * Das Fenster befindet sich immer vor allen anderen auf dem Workbench-
- * screen geöffneten Windows.
- * Zeit wird ohne Zugriff von Hand auf den Datestamp "geholt"
- *
- * Compile Instr.:
- * dcc Time.c -1.3 -o RAM:Time -E RAM:ErrorList -v
- *
- * Aufruf: Run Time
- */
-
- #include <exec/types.h>
- #include <intuition/intuitionbase.h>
- #include <intuition/intuition.h>
- #include <time.h>
- #include <libraries/dos.h>
-
- struct IntuiMessage *message;
- struct RastPort *rp;
- struct Window *win;
- struct NewWindow nwindow =
- {
- 522, 1, 64, 8, 1, 1,
- CLOSEWINDOW, WINDOWCLOSE | WINDOWDRAG,
- NULL, NULL, "", NULL, NULL, NULL, NULL, NULL, NULL,
- WBENCHSCREEN
- };
-
- void
- Ende ()
- {
- if (win) CloseWindow (win);
- exit (0);
- }
-
- main()
- {
- char buff[8];
- ULONG MessageClass;
- USHORT code;
-
- if (!(win = (struct Window *) OpenWindow (&nwindow))) Ende ();
- rp = win->RPort; /* Rastport des geöffneten Windows ermittelm */
- SetAPen (rp, 0); /* Farbe d. Ziffern = Hintergrundfarbe d. Workbench */
- SetBPen (rp, 1); /* Hintergrundfarbe = Vordergrundfarbe d. Workbench */
- while (1) /* Endlosschleife */
- {
- time_t t=time(NULL); /* get current time; time_t ist ULONG */
- struct tm *tp = localtime (&t); /* time in tm Struktur übertragen */
- /* Std., Min., Sec. in Buffer schreiben */
- sprintf (buff, "%02d:%02d:%02d", tp->tm_hour, tp->tm_min, tp->tm_sec);
- Move (rp, 0, 6); /* Zeichenstift im Window positionieren */
- Text (rp, buff, 8); /* Text aus Buffer auf rp schreiben */
- Delay (50); /* etwa 50/50 sec warten, um CPU nicht unnötig zu */
- /* blockieren */
- WindowToFront (win); /* Zeit auf WB-Screen immer sichtbar */
- /* Abfrage, ob Closing-Gadget (unsichtbar, aber
- /* unter den ersten Ziffern der Uhr) betätigt wurde */
- if (message = (struct IntuiMessage *) GetMsg(win->UserPort))
- {
- MessageClass = message->Class; /* Message retten & quittieren */
- code = message->Code;
- ReplyMsg (message);
- if (MessageClass == CLOSEWINDOW) Ende ();
- }
- }
- }
-
-